var path = require('path')

// 导入在内存中生成 html 页面的插件
// 只要是插件，都一定要放到plugins属性分支中
var htmlWebpackPlugin = require('html-webpack-plugin')
//Vue-loader在15.*之后的版本都是 vue-loader的使用都是需要伴生 VueLoaderPlugin的
const VueLoaderPlugin = require('vue-loader/lib/plugin')

module.exports = {
    // entry  入口文件
    entry: path.join(__dirname, './src/main.js'),
    // 输出文件相关配置
    output: {
        path: path.join(__dirname, './dist'),//指定输出到哪个目录中去
        filename: 'bundle.js'   //指定输出的文件名称
    },
    plugins: [ //配置插件的分支
        // 创建在内存中生成 html 页面的插件对象
        new htmlWebpackPlugin({
            // 指定模板页面，将这个页面去内存中生成
            template: path.join(__dirname, './src/index.html'),
            filename: 'index.html'  // 指定生成页面的名称
        }),
        new VueLoaderPlugin()
    ],
    module: { //配置所有的第三方模块 加载器
        rules: [ //所有第三方模块的匹配规则
            { test: /\.css$/, use: ['style-loader', 'css-loader'] },
            { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
            { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
            //处理图片路径的loader
            { test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader?limit=18840&name=[hash:8]-[name].[ext]'},
            //处理字体文件
            { test: /\.(ttf|eot|svg|woff|woff2|otf)$/, use: 'url-loader'},

            { test: /\.vue$/, use: 'vue-loader' }
        ]
    },
    resolve: {
        alias: { //修改 Vue 被导入时，包的路径
            // "vue$": "vue/dist/vue.js"
        }
    }
}
